package com.water_work_form.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.water_work_form.entity.RecordCapacityAnalysis;
import com.baomidou.mybatisplus.extension.service.IService;
import com.water_work_form.entity.RecordSpectrophotometric;
import com.water_work_form.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * <p>
 * 记录——容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 服务类
 * </p>
 *
 * @author xuke
 * @since 2023-09-14
 */
public interface RecordCapacityAnalysisService extends IService<RecordCapacityAnalysis> {

    /**
     * 容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 项目查询
     * @param checkStartDate 检测日期（check_date）范围查询开始日期 若非空查询check_date大于checkStartDate数据
     * @param checkEndDate 检测日期（check_date）范围查询结束日期  若非空查询check_date小于checkEndDate数据
     * @param checkSite 检测地点（check_site） 若非空进行模糊查询
     * @param status 状态（status） 若非空进行匹配查询
     * @param current 分页 当前页
     * @param size 分页 每页数据量
     * @return 返回相应数据 按照状态（status）、领样日期（receive_date）、检测日期（check_date）的顺序进行升序排序
     */
    IPage<RecordCapacityAnalysis> selectRecordCapacityAnalysis(String checkStartDate, String checkEndDate, String checkSite, String status, Integer current, Integer size);

    /**
     * 容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 基础表数据查询
     * @param formName form表name
     * @param type device表type
     * @param name1 formula表name，drug表name，ph表name，restriction表name
     * @param name2 formula表name，drug表name，ph表name，restriction表name
     * @param name3 formula表name，drug表name，ph表name，restriction表name
     * @param name4 formula表name，drug表name，ph表name，restriction表name
     * @param volume1 volume表name
     * @param volume2 volume表name
     * @param volume3 volume表name
     * @param volume4 volume表name
     * @return 返回相应数据 唯一查询项键名为表名，非唯一项键名数字编号与查询项一致
     */
    Map<String,Object> selectBasicCapacityAnalysis(String formName, String type, String name1, String name2, String name3, String name4, String volume1, String volume2,
                                                   String volume3, String volume4);

    void downloadRecordCapacityAnalysis(RecordCapacityAnalysis recordCapacityAnalysis) throws IOException;
}
